$(function () {
	/**
	 * ajax封装
	 * url 发送请求的地址
	 * data 发送到服务器的数据，数组存储，如：{"date": new Date().getTime(), "state": 1}
	 * async 默认值: true。默认设置下，所有请求均为异步请求。如果需要发送同步请求，请将此选项设置为 false。
	 *       注意，同步请求将锁住浏览器，用户其它操作必须等待请求完成才可以执行。
	 * type 请求方式("POST" 或 "GET")， 默认为 "GET"
	 * dataType 预期服务器返回的数据类型，常用的如：xml、html、json、text
	 */
	jQuery.tunan = function (url, data, async, type, dataType, callback) {

		async = (async == null || async == "" || typeof(async) == "undefined") ? "true" : async;
		type = (type == null || type == "" || typeof(type) == "undefined") ? "post" : type;
		dataType = (dataType == null || dataType == "" || typeof(dataType) == "undefined") ? "json" : dataType;
		// data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;

		//var  accessToken= localStorage.getItem("accessToken");

		// var  freshToken= localStorage.getItem("freshToken");
		var accessToken = "1234567";
		var freshToken = "1234567";
		var rData = null;
		$.ajax({
			headers : {
				'accessToken' : accessToken
			},
			type : type,
			async : async,
			data : data,
			url : url, //检验token是否有效
			dataType : dataType,
			success : function (d) {
				//获取校验的返回状态
				if (d.ack_code == "FAILURE") //如果为以旧换新的状态
				{
					//如果token过期，则已旧换新
					var getNewUrl = "/loginController/updateToken"; //获取新的
					$.ajax({
						url : getNewUrl,
						headers : {
							'freshToken' : freshToken
						},
						data : null,
						type : "post",
						success : function (newdata) {
							//移除旧的token
							localStorage.removeItem("accessToken");
							localStorage.removeItem("freshToken");
							//添加更新的token
							var token = newdata.token;
							localStorage["accessToken"] = token.accessToken;
							localStorage["freshToken"] = token.freshToken;

							$.ajax({
								url : url,
								data : data,
								type : "post",
								success : callback,
								error : function () {

									alert("业务操作执行错误！");
								}

							});
						},
						error : function () {

							alert("执行以旧换新时出现错误");
						},

					});

				} else {
					//没有token或者token无效
					window.location.href = "/lsj/login.jsp";
				}

			},
			error : function (e) {
				console.log(e);
			}
		});

		return rData;
	};

});
